///******************************************************************************* // * Copyright (c) 2000, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ // //package org.eclipse.ui.tests.keys; // //import org.eclipse.jface.bindings.keys.KeySequence; //import org.eclipse.jface.bindings.keys.KeySequenceText; //import org.eclipse.jface.bindings.keys.ParseException; //import org.eclipse.swt.SWT; //import org.eclipse.swt.layout.RowLayout; //import org.eclipse.swt.widgets.Display; //import org.eclipse.swt.widgets.Shell; //import org.eclipse.swt.widgets.Text; //import org.eclipse.ui.tests.harness.util.UITestCase; // ///** // * Tests Bug 42024 // * // * @since 3.0 // */ //public class Bug42024Test extends UITestCase { // // /** The shell on which the <code>KeySequenceText</code> is placed. */ // private Shell shell = null; // // /** The instance of <code>KeySequenceText</code> we should tinker with. */ // private KeySequenceText text = null; // // /** // * Constructor for Bug42024Test. // * // * @param name // * The name of the test // */ // public Bug42024Test(String name) { // super(name); // } // // /* // * @see TestCase#setUp() // */ // protected void doSetUp() throws Exception { // super.doSetUp(); // // // Create a window with a KeySequenceText // Display display = Display.getCurrent(); // shell = new Shell(display); // shell.setLayout(new RowLayout()); // text = new KeySequenceText(new Text(shell, SWT.BORDER)); // // // Open it // shell.pack(); // shell.open(); // } // // protected void doTearDown() throws Exception { // super.doTearDown(); // // // Close and destroy the window // shell.close(); // shell.dispose(); // // // Release the memory. // shell = null; // text = null; // } // // /** // * Tests that the limiting facility on KeySequenceText allows an arbitrary // * number of key strokes, when the the limit is set to "infinite". In this // * case, we will use a six stroke sequence. // * // * @throws ParseException // * If the test sequence cannot be parsed. // */ // public void testInfiniteStrokes() throws ParseException { // String keySequenceText = "A B C D E F"; //$NON-NLS-1$ // KeySequence keySequence = KeySequence.getInstance(keySequenceText); // text.setKeyStrokeLimit(KeySequenceText.INFINITE); // text.setKeySequence(keySequence); // assertEquals( // "Infinite limit but sequence changed.", keySequence, text.getKeySequence()); //$NON-NLS-1$ // } // // /** // * Tests that inserting a key sequence of matching length causes no change, // * but inserted a key sequence of one greater does cause a change -- // * specifically truncation. // * // * @throws ParseException // * If the test sequences cannot be parsed. // */ // public void testTruncation() throws ParseException { // final int length = 4; // text.setKeyStrokeLimit(length); // // // Test matching length. // String matchingKeySequenceText = "1 2 3 4"; //$NON-NLS-1$ // KeySequence matchingKeySequence = KeySequence // .getInstance(matchingKeySequenceText); // text.setKeySequence(matchingKeySequence); // assertEquals( // "Limit of four change four stroke sequence.", matchingKeySequence, text.getKeySequence()); //$NON-NLS-1$ // // // Test one greater than length. // String longerKeySequenceText = "1 2 3 4 5"; //$NON-NLS-1$ // KeySequence longerKeySequence = KeySequence // .getInstance(longerKeySequenceText); // text.setKeySequence(longerKeySequence); // assertEquals( // "Limit of four did not truncate to four.", length, text.getKeySequence().getKeyStrokes().length); //$NON-NLS-1$ // } // // /** // * Tests that a zero-length stroke can be inserted into the KeySequenceText -- // * regardless of whether the stroke limit is some positive integer or // * infinite. // */ // public void testZeroStroke() { // KeySequence zeroStrokeSequence = KeySequence.getInstance(); // // // Test with a limit of four. // text.setKeyStrokeLimit(4); // text.setKeySequence(zeroStrokeSequence); // assertEquals( // "Limit of four changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$ // // // Test with an infinite limit. // text.setKeyStrokeLimit(KeySequenceText.INFINITE); // text.setKeySequence(zeroStrokeSequence); // assertEquals( // "Infinite limit changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$ // } //}